// pages/main/map-marker/map-marker.js
Page({
  data: {
    appId: '',
    appName: '',
    latitude: 31.2304, // 地图中心纬度
    longitude: 118.8544, // 地图中心经度
    markers: [], // 地图标记点
    hasMarker: false, // 是否已有标记
    scale: 15 // 地图缩放级别
  },

  onLoad(options) {
    const appId = options.app_id;
    const appName = options.app_name || '应用';
    
    this.setData({ 
      appId,
      appName
    });

    // 设置页面标题
    wx.setNavigationBarTitle({
      title: '标注位置 - ' + appName
    });

    // 获取地图实例
    this.mapCtx = wx.createMapContext('markerMap', this);

    // 获取用户当前位置
    this.getUserLocation();
  },

  // 获取用户当前位置
  getUserLocation() {
    wx.showLoading({
      title: '定位中...',
      mask: true
    });

    wx.getLocation({
      type: 'gcj02',
      success: (res) => {
        this.setData({
          latitude: res.latitude,
          longitude: res.longitude
        });
        wx.hideLoading();
      },
      fail: () => {
        wx.hideLoading();
        wx.showToast({
          title: '定位失败，使用默认位置',
          icon: 'none',
          duration: 2000
        });
      }
    });
  },

  // 地图点击事件 - 放置标记点
  onMapTap(e) {
    const { latitude, longitude } = e.detail;
    
    // 只允许放置一个标记点
    this.setData({
      markers: [{
        id: 1,
        latitude: latitude,
        longitude: longitude,
        width: 32,
        height: 32,
        callout: {
          content: '标注位置',
          color: '#ffffff',
          fontSize: 12,
          borderRadius: 8,
          bgColor: '#667eea',
          padding: 8,
          display: 'ALWAYS'
        }
      }],
      hasMarker: true
    });

    console.log('标注位置:', latitude, longitude);
  },

  // 重新定位
  onRelocate() {
    this.getUserLocation();
  },

  // 标记当前位置
  onMarkCurrentLocation() {
    wx.showLoading({
      title: '获取位置中...',
      mask: true
    });

    wx.getLocation({
      type: 'gcj02',
      success: (res) => {
        // 在当前位置放置标记
        this.setData({
          latitude: res.latitude,
          longitude: res.longitude,
          markers: [{
            id: 1,
            latitude: res.latitude,
            longitude: res.longitude,
            width: 32,
            height: 32,
            callout: {
              content: '当前位置',
              color: '#ffffff',
              fontSize: 12,
              borderRadius: 8,
              bgColor: '#52c41a',
              padding: 8,
              display: 'ALWAYS'
            }
          }],
          hasMarker: true
        });

        wx.hideLoading();
        wx.showToast({
          title: '已标记当前位置',
          icon: 'success',
          duration: 1500
        });

        console.log('标记当前位置:', res.latitude, res.longitude);
      },
      fail: () => {
        wx.hideLoading();
        wx.showToast({
          title: '获取位置失败',
          icon: 'none',
          duration: 2000
        });
      }
    });
  },

  // 清除标注
  onClearMarker() {
    if (!this.data.hasMarker) {
      wx.showToast({
        title: '当前没有标注',
        icon: 'none'
      });
      return;
    }

    wx.showModal({
      title: '确认清除',
      content: '确定要清除当前标注吗？',
      confirmColor: '#f5222d',
      success: (res) => {
        if (res.confirm) {
          this.setData({
            markers: [],
            hasMarker: false
          });
          wx.showToast({
            title: '已清除标注',
            icon: 'success'
          });
        }
      }
    });
  },

  // 保存标注
  onSaveMarker() {
    if (!this.data.hasMarker) {
      wx.showToast({
        title: '请先在地图上标注位置',
        icon: 'none',
        duration: 2000
      });
      return;
    }

    const marker = this.data.markers[0];
    
    wx.showLoading({
      title: '保存中...',
      mask: true
    });

    // 这里可以调用后端API保存标注信息
    // wx.request({
    //   url: `${getApp().globalData.serverUrl}/SaveMarker/`,
    //   method: 'POST',
    //   data: {
    //     app_id: this.data.appId,
    //     latitude: marker.latitude,
    //     longitude: marker.longitude
    //   },
    //   success: (res) => {
    //     wx.hideLoading();
    //     if (res.data.status) {
    //       wx.showToast({
    //         title: '保存成功',
    //         icon: 'success'
    //       });
    //       setTimeout(() => {
    //         wx.navigateBack();
    //       }, 1500);
    //     }
    //   }
    // });

    // 模拟保存成功
    setTimeout(() => {
      wx.hideLoading();
      wx.showToast({
        title: '标注保存成功',
        icon: 'success',
        duration: 1500
      });
      
      console.log('保存标注:', {
        app_id: this.data.appId,
        latitude: marker.latitude,
        longitude: marker.longitude
      });

      // 返回上一页
      setTimeout(() => {
        wx.navigateBack();
      }, 1500);
    }, 1000);
  },

  // 地图渲染完成
  onMapReady() {
    console.log('地图渲染完成');
  },

  // 点击标记点
  onMarkerTap(e) {
    console.log('点击标记点:', e.markerId);
  }
});

